Debezium 博客

Kafka Streams 是一个用于开发基于 Apache Kafka 的流处理应用程序的库。引用其文档,“Kafka Streams 应用程序通过拓扑实时处理记录流,以逐条记录的方式持续、并发地处理数据”。Kafka Streams DSL 提供了一系列流处理操作,例如 map、filter、join 和 aggregate。

Kafka Streams 中的非键连接

Debezium 的 CDC 源连接器可以轻松地捕获数据库中的数据变更,并近乎实时地将其推送到 Elasticsearch 等接收系统。默认情况下,这会在源数据库的表、相应的 Kafka 主题以及接收端的数据表示(例如 Elasticsearch 中的搜索索引)之间产生一对一的关系。

在 1:n 关系的情况下,例如客户表和地址表之间,消费者通常对一种数据视图感兴趣,该视图是单个、嵌套的数据结构,例如表示客户及其所有地址的单个 Elasticsearch 文档。

这就是 KIP-213(“Kafka 改进提案”)及其外键连接能力的作用所在:它是在 Apache Kafka 2.4 中引入的,“以弥合 Streams 中的 KTables 与关系数据库中的表之间的语义差距”。在 KIP-213 之前,为了连接两个 Debezium 变更事件主题的消息,您通常需要手动重新键入至少一个主题,以确保连接的双方使用相同的键。

得益于 KIP-213,这不再需要了,因为它允许在从 Kafka 消息值中提取的字段上连接两个 Kafka 主题,以完全透明的方式自动处理所需的重新键入。与之前的方法相比,这大大减少了从 Debezium 的 CDC 事件创建聚合事件的工作量。

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×